package com.apexedu.sync.engine;

import com.apexedu.biz.entity.TAccessAppReg;
import com.apexedu.framework.dao.BaseDao;
import com.apexedu.identity.entity.TSysMenu;
import com.apexedu.identity.entity.TSysRole;
import com.apexedu.identity.entity.TSysUser;
import com.apexedu.portal.util.DBMUtil;
import com.apexedu.sync.entity.SyncAppMsg;

import java.util.Map;

/**
 * 接入系统同步上下文接口
 * Created by ly on 2015/1/12.
 */
public interface ISyncContext {
    public TAccessAppReg getAccessAppReg();

    /**
     * 多数据源操作类
     *
     * @return
     */
    public DBMUtil getDbmUtil();

    /**
     * 用户
     *
     * @return
     */
    public TSysUser getUser();

    /**
     * hibernate操作类
     *
     * @return
     */
    public BaseDao getBaseDao();

    /**
     * 获取同步结果
     *
     * @return
     */
    public SyncAppMsg getMsg();

    /**
     * 获取角色集合 <bizcode,角色>
     *
     * @return
     */
    public Map<String, TSysRole> getMapRole();

    /**
     * 获取菜单资源集合<bizcode,菜单资源>
     *
     * @return
     */
    public Map<String, TSysMenu> getMapMenu();

    /**
     * 获取用户集合 <登录账号,用户>
     *
     * @return
     */
    public Map<String, TSysUser> getMapUser();

    /**
     * 判断是否livebos系统
     *
     * @return
     */
    public boolean isLivebos();

    /**
     * 判断是否apexssh系统
     *
     * @return
     */
    public boolean isApexssh();

    /**
     * 获取接入系统id
     *
     * @return
     */
    public String getAppid();
}
